Power management of networked devices

ABSTRACT

A network-centric, power management system and method is disclosed for monitoring and controlling device nodes attached to a network. The monitoring and controlling includes collecting and processing information available on the network about the device nodes and using the collected information to manage power on the device nodes.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of, and claims priority to U.S.patent application Ser. No. 13/942,586 entitled “Power Management ofNetworked Devices” filed Jul. 15, 2013, which is a continuation of U.S.application Ser. No. 12/114,721, entitled “Power Management of NetworkedDevices,” filed on May 2, 2008 (Now U.S. Pat. No. 8,488,500), the entirecontents of which are incorporated herein by reference.

TECHNICAL FIELD

This subject matter is generally related to power management.

BACKGROUND

Conventional power management techniques used by computing devices oftenoperate in an autonomous fashion. For example, a given device canautomatically enter a power-saving mode based on a level of activityassociated with the device. In a networked environment, however, acomputing device can have multiple users. In an office or businessenvironment, both a user of the device as well as a person in charge ofmaintenance of the device may use the device at different times.Typically, the person in charge of the maintenance is a remote user. Ina home environment, multiple users may access information and/or run anapplication on the same device. In this case, only one of the users isco-located with the device.

Conventional autonomous power management techniques take into accountcurrent activity levels in computing devices, not activities beinginitiated or soon to be initiated by one or more remote users. Hence,conventional autonomous power management techniques may not be effectivein a networked environment in a home or office.

SUMMARY

A network-centric, power management system and method is disclosed formonitoring and controlling device nodes attached to a network. Themonitoring and controlling includes collecting and processinginformation available on the network about the device nodes and usingthe collected information to manage power on the device nodes.

The power management system and method improves power management ofenterprise office computing and communication device nodes (e.g.,desktop computers, phones, printers, scanners, access points, switches,etc.) in small, medium, or large enterprises, including corporations,organizations, government, etc. It also improves power management ofenterprise office or building automation device nodes (e.g., sensors,actuators, cameras, alarms, etc.) that are supported by a networking andcomputing infrastructure. The system and method improves powermanagement for networked device nodes used in home computing, andentertainment, as well as home automation. Power management ofenterprise and home computing and building automation can yieldsubstantial power and cost savings using the system and method.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of an example power management system.

FIG. 2 is a block diagram of an example communication node of the powermanagement system of FIG. 1.

FIG. 3 is a block diagram of an example control node of the powermanagement system of FIG. 1.

FIGS. 4 and 5 are block diagrams of an example device node of the powermanagement system of FIG. 1.

FIG. 6 is a block diagram of an example of a global system architecturefor managing power at device nodes.

FIG. 7 illustrates an example activity traces for selecting powermanagement actions for two different device nodes.

FIG. 8 is a flow diagram of an example control process for the powermanagement system of FIG. 1.

DETAILED DESCRIPTION Network-Centric Power Management System Overview

A typical office and home has multiple devices that consume power. Forexample, many homes and offices are equipped with at least a computerand a printer. Because the user can use only one device at a time, theusage of each device can be low on average. Despite this low averageusage, many users keep their devices on at all times resulting in a highpower cost. Generally speaking, the reason to keep all devices on isthat: (1) there is uncertainty as to which device the user will use nextand when, and (2) the user is sensitive to waiting for a device to powerup. Hence, the high power cost is traded for potential latency cost.

The system 100 can improve the power-latency tradeoff by reducing theuncertainty concerning which device (e.g., when and where) the user willuse next. To reduce this uncertainty, the power management system 100can (1) increase the volume and improve the quality of data collectedabout the user, (2) fuse and correlate the data for decision making, and(3) use more intelligent decision making processes for powering up/downdevices in anticipation of user request for usage and input. To addressthe aforementioned issues, among others, the system 100 can track theuser through a network and monitors the user's interactions with thenetwork and with devices connected thereto.

The system 100 is network-centric in that it manages a network peripheryof connected device nodes from the vantage point of the network, whereinformation from various device nodes can be collected, integrated andacted upon. This approach is in contrast to conventional powermanagement techniques that are device-centric, trying to optimize powerusage on each individual device node in isolation. Therefore,conventional power management techniques miss the benefits of capturingand correlating network-wide data about the location and operationalcontext of the user to tightly anticipate device node usage request andget user input. For example, when the power management system 100 isinstalled in an enterprise network detects that a user's laptop (orother mobile device) is connected to an enterprise WiFi access pointthat is remote from the user's office, the system 100 can determine thatthe user is away from the office and that the user's computer can beshutdown.

The system 100 can be non-invasive to the user's enterprise and homenetwork architecture and operations. For example, in someimplementations the system 100 may not require installing any softwareclient on the managed device nodes (clientless). The system 100 may evenbe implemented in a box or appliance that can be coupled into a networkand be given “read permissions” to enterprise server log files.

The system 100 can be scalable to large numbers of device nodes androbust enough to avoid disruption of enterprise or home operations dueto inadvertent instability or planned attack. The system 100 can avoid“a single point of failure” by being deployed in a distributedimplementation combined with managed redundancy.

Example Power Management System Architecture

FIG. 1 is a block diagram of an example power management system 100. Insome implementations, the system 100 can include communication nodes102, control nodes 104, device nodes 108 which are interconnected bycommunication links 106. The device nodes 108 are power-managed by thecontrol nodes 104. The device nodes 108 and the control nodes 104 arenetworked through the communication nodes 102 and communication links106. In some implementations, the communication node 102 is connected todevice nodes 108 a . . . 108 d and control nodes 104 a . . . 104 bthrough communication links 106 a . . . 106 e. The communication node102 may also be connected to other communication nodes throughcommunication links, being part of a larger communication network.

Communication node 102 can have at least information communicationcapabilities and optionally information processing capabilities. Thecommunication node 102 allows unidirectional and/or bidirectionaltransfer of communication messages from at least one communication portor interface to another communication port or interface. Some examplesof the communication node 102 include one or more of: a wireline packetswitch, a telephone switch, a wireless access point, etc.

Communication links 106 can be, for example, bidirectional orunidirectional, digital or analog, wireline (e.g., electrical, optical,Ethernet, ATM) or wireless (e.g., radio, WiFi, WiMax, GSM, satellite,optical infrared), or any combination of the above. Indeed,communication links 106 can be supported by any known communicationmedium and any communication technology.

Control nodes 104 can have information communication and/or processingcapabilities. The control nodes 104 can have at least one communicationport or interface to which at least one communication link 106 iscoupled and allows information communication between the control nodes104 and other elements of the system 100, including one or morecommunication nodes 102, device nodes 108, other control nodes 104, etc.For example, the control node 104 a can comprise one or more processors,processing cores or microcontrollers, residing on a computer host, acomputer server, or specialized electronic equipment, etc. The controlnode 104 a can be implemented in hardware or software or a combinationof both, and/or implemented as a software process or processor embeddedin a larger system.

The device nodes 108 can have information communication capabilityand/or one or more other capabilities, including but not limited to:computing, processing, command, control, sensing, actuating, or anycombination of those. The device nodes 108 can have at least oneinformation communication port and/or interface to which a communicationlink 106 is coupled and allows information communication between a givendevice node 108 and other elements of the system 100, including one ormore communication nodes 102, control nodes 104, other device nodes 108,etc. For example, a device node 108 a can be one of the followingdevices (or a group of them) with a communication interface, whichdevices include but are not limited to: computers (e.g., desktop,laptop, etc.), personal digital assistants (PDAs), wireless phones,printers, scanners, home “network attached storage” devices, lightswitches, electrical outlets, home entertainment units (video recorders,etc.), surveillance cameras, set-top boxes, media players, etc.

In some implementations, the device nodes 108 a can be power managed byat least one control node 104 a, which can include a controller. Forexample, in FIG. 1 a control node 104 a communicates with a device node108 a through the communication node 102, using communication link 106b. In other implementations, the communication node 102 may partiallyoverlap or be embedded in a device node 108 a or control node 104 a andvice versa.

For example, consider a desktop computer (device 108 a) which isconnected through an Ethernet port to a switch (communication node 102).Connected to the computer 108 a through a port (e.g., a USB port) is aprinter (device 108 b), which is not connected to any other device 108but only to the computer 108 a. The computer 108 a is power managed bythe control node 104 a which is connected to the switch 102 through theEthernet. The printer 108 b is power managed by control node 104 b whichis also coupled to the switch 102. Note that in the previousconfiguration the computer 108 a is the device node 108 a that is powermanaged by the control node 104 a through the switch 102. The printer isdevice node 108 b which is power managed by the control node 104 bthrough the switch 102 and the computer 108 a. Thus the computer 108 acan be both a device node 108 power managed by the control node 104 aand a communication node 102 mediating power management of the printer108 b by the control node 104 b.

Example Communication Nodes

FIG. 2 is a block diagram of an example communication node 102 of thepower management system 100 of FIG. 1. In some implementations, thecommunication node 102 can include one or more communication interfaces208. The communication interfaces 208 can send and/or receive messagesto other communication nodes 102, control nodes 104, or device nodes 108to which the interfaces 208 are coupled. The communication node 102 ofFIG. 2 includes a communication detour engine 200, which can have thecapability to: (a) intercept a communication message destined for acontrol node 104 by recognizing the destination address of the message,(b) remap the destination address of the incoming message to theaddresses of one or more control nodes 104, and (c) divert thecommunication message to the control nodes 104. The communication detourengine 200 can include a communication interception engine 202, whichcan intercept a message arriving from a communication interface 208through a data path 210 and destined to a device node 108. Thecommunication detour engine 200 can also include a communication mappingengine 204, which can remap a destination address of an interceptedmessage to addresses of one or more control nodes 104. The communicationdetour engine 200 also includes a communication diversion engine 206,which is able to divert the intercepted message (with the now remappedoriginal destination address to the addresses of one or more controlnodes 104) and output it to a communication interface 208 of thecommunication node 102 through a data path 210. The communicationinterface 208 can transmit the intercepted message with a remappeddestination address to the control node 104 whose address the message'soriginal destination address has been remapped. The transmission to thecontrol nodes 104 can occur either directly or indirectly through othercommunication nodes 102. The communication node 102 may have softwareand/or hardware components supporting functionalities, includingelectronic circuitry for running the software (e.g., special digitalcircuitry, embedded processor, microprocessor).

Example Control Nodes

FIG. 3 is a block diagram of an example control node 104 of the powermanagement system 100 of FIG. 1. In some implementations, the controlnode 104 includes at least one communication interface 300. The controlnode 104 can include one or more device deputy engines 304. For example,there can be one device deputy engine 304 for each device node 108 thatthe control node 104 controls. The device deputy engine 304 can have thecapability to substitute for one or more services and/or functionalitiesthat a device node 108 corresponding to the device deputy engine 304shuts off or ceases having operation. The shutoff or cease of operationcan occur when the device node 108 switches to a lower operational modewhere less power is consumed than a higher operational mode. Inparticular, a device deputy engine 304 can selectively respond to asubset of incoming service requests to corresponding device node 108,which incoming service requests are being diverted to the device deputyengine 304 by the communication diversion engine 206 of thecommunication detour engine 200 of the communication node 102. Thedevice node 108 also can include a deputy supervisor engine 302, whichsupervises and coordinates one or more device deputy engines 304corresponding to controlled device nodes 108. The control node 104 mayhave software and/or hardware components supporting its functionalities,including electronic circuitry for running the software (e.g., specialdigital circuitry, embedded processor, microprocessor).

Example Device Nodes

FIGS. 4 and 5 are block diagrams of an example device node 108 of thepower management system 100 of FIG. 1. Referring to FIG. 4, in someimplementations, a device node 108 can include at least onecommunication interface 400. The device node 108 can exist in one of aplurality of operational modes. At least one operational mode can bedefined by services and/or functionalities of the device node 108 thatremain active, services and/or functionalities of the device node 108that are inactive or dormant, and/or overall power used during anoperational mode. Note that at least two different operational statesmay use the same amount of power. The device node 108 can include aquench engine 402 that can switch the device node 108 to a loweroperational mode that uses lower power than the previous operationalmode. The switch to a lower operational mode can occur in response tocommands sent by a control node 104 controlling the device node 108.

The device node 108 can include a revive engine 404 that can switch thedevice node 108 to a previous, higher operational mode that uses higheror equal power than the previous operational mode and has a differentcombination of active services and/or functionalities. Note that thedevice node 108 can also switch to a special operational mode where thedevice node 108 is fully off, such as being powered down, except for aminimal communication capability to respond to controller commands andfully on (e.g., fully powered up).

The device node 108 can have software and/or hardware componentssupporting functionalities of the device node 108, including electroniccircuitry for running software (e.g., special digital circuitry,embedded processor, microprocessor).

Referring now to FIG. 5, further details of an example device node 108are described. In these example implementations, the device node 108 caninclude one or more power consumption units 504 that consume power. Alsoincluded is electronic control circuitry 502 that controls the powerconsumption units 504. At least one of the power consumption units 504can be set to one or more power consumption levels. An example powerconsumption mode can be that a power consumption unit 504 is completelyshut off. Another example of a power consumption mode can be that apower consumption unit 504 is fully powered up. Intermediate powerconsumption states or modes can exist between completely shut off andfully powered up. The quench engine 402, which can be responsive tocommands sent by the control node 104 controlling the device node 108,can switch one or more of the power consumption units 504 to a lowerpower consumption mode than the current power consumption mode, usingthe electronic control circuitry 502. The revive engine 404, which canbe responsive to commands sent by a control node 104 for controlling thedevice node 108, can switch one or more of the power consumption units504 to a higher power consumption mode than the current powerconsumption mode using the electronic control circuitry 502.

To illustrate by example, consider a case of a device node 108 that is alaser printer. The laser printer can have several power consumptionunits 504. For example, the motor that drives the motion and flow ofpaper sheets can be a power consumption unit 504 a, the heating elementssupporting the printing process can be a power consumption unit 504 b,the motor that runs the cooling fan can be a power consumption unit 504c, etc. At least one of the power consumption units 504 can be set tovarious power consumption modes. For example, the paper moving motor maybe set to faster or slower modes, depending on how fast or slow theprinter is printing, where the faster the motor runs the more power isconsumed by the laser printer. Also, the cooling fan motor may be set tofaster or slower modes, depending on the temperature of the printer caseand/or printer operating environment, where the faster the motor runsthe more power is consumed. Similarly, at least one power consumptionunit 504 in at least one power managed device node 108 can be set at apoint in time to one of a plurality of power consumption modes.

Global System Architecture

FIG. 6 is a block diagram of an example of global system architecture600 for managing power at device nodes 604. The device nodes 604 arecoupled to one or more computer servers 602 a or control appliances 608through a network 606. The network 606 can be, for example, theInternet, enterprise or corporate Intranets, the telephone network, awireless network, etc. In some implementations, the control node 104(FIG. 1) that power manages one or more device nodes 108 can beimplemented in software on the computer servers 602, leveraging thehardware infrastructure provided by the computer servers 602. In anotherimplementation, the control node 104 that power manages one or more ofthe device nodes 108 can be implemented as a separate control appliance608 coupled to the communication network 606. The control appliance 608can include software and hardware components for supporting the controlnode 104 functionalities, including electronic circuitry for running thesoftware (e.g., special digital circuitry, embedded processor,microprocessor), digital storage, etc.

Collecting Operational and Power Usage Data

In some implementations, a device node 108 and a corresponding controlnode 104 monitor, collect and process operational and/or power usagedata of the device node 108. Operational data can reflect the activitiesthe device node 108 is undertaking. For example, data backups or virusscans for a personal computer, printing or idling for a printer,recording or idling for a camera with a motion sensor, etc. Power usagedata can refer to how much power and for what purpose the device node108 is consuming (perhaps, broken down per activity). For example, in apersonal computer the operating system (e.g., Windows, Linux, Mac OS)can collect power usage data and send the data to a correspondingcontrol node 102 in response to trigger events or on a scheduled basis(e.g., periodically). In another example, the corresponding control node104 can install a software client on the device node 108 power managedby the control node 104 to collect operational and power usage data andupload the data to the control node 104.

Network Power Profiling

In some implementations, to leverage the power managementfunctionalities of device nodes 108 and control nodes 104, the system100 monitors and displays power usage profiles of one or more devicenodes 108 coupled to or integrated with the communication network 606.The power usage profiles can be displayed in an suitable form fornetwork operators and/or power managers. Device nodes 108 that couple tothe network 606 components (e.g., switches, hubs, routers) which havepower monitoring and management capabilities can be viewed as devicenodes 108 and selected by the network operator and/or power manager formonitoring and display. The power usage profiles of device nodes 108 caninclude instantaneous power consumption, as well as a cumulative powerconsumption over time, and other statistics, averages, variances, etc.This data extracted from monitored device nodes 108 can be collected anddeposited in a power consumption data repository (e.g., a database) at aprocessing facility (e.g., a server at a data center) and used toextract and build power usage profiles of monitored device nodes 108,which can be selected by a network operator and/or power manager. Thepower usage data and corresponding profiles can be processed andpresented in appropriate graphic formats on a display facility (e.g.,monitor, video wall, projection screen) for the network operator and/orpower manager to view.

Therefore, the network operator and/or power manager can: 1) select oneor more device nodes 108 coupled to the network 606 or integrated withthe network 606 (e.g., switches, links), and 2) collect power usage datafrom these device nodes 108, and 3) view the profiles on a monitor.Hence, the network operator and/or power manager can then evaluate thepower usage on the network and take appropriate measures and responses,for example, set alarms to sound when power usage exceeds certainthresholds, etc.

In some implementations, a system for managing power consumption of adevice node attached to a communication node of a communication networkincludes an interface configurable for coupling to the communicationnode; and a controller coupled to the interface and operable formonitoring activity at the device node, and, responsive to detectedactivity at the device node, operable to send a command to the devicenode for setting the device node into an operational mode associatedwith power consumption. The operational mode can include turning thedevice node on or off.

The monitoring activity can include learning an activity patternassociated with the device node. The monitoring activity can includelearning a usage pattern associated with the device node and a user. Themonitoring activity can include learning a user location patternassociated with the device node and a user. The monitoring activity caninclude monitoring one or more of: user calendar information residing atthe device node, user location relative to the device node, user loginhistory associated with the device node, user usage history associatedwith the device node and user input entered at the device node.

The detected activity can be a sensed user activity in a device nodeenvironment (e.g., user motion detected by a motion sensor in theenvironment of the device node). The controller can be responsive toinformation other than detected activity (e.g., control rules). Forexample, the control can be responsive to a user response to a systemrequest or communication. For example, the system 100 can display a popup menu or other notification to the user at the device requestinginput, then waiting for the input to determine if the user is currentlypresent at the device node. If the device node has telephony capability(e.g., a mobile phone), then the system 100 can ring the device node andsee if the user answers the ring. Similarly, the system 100 can send anemail, Instant Message or other communication to the device node andwait for the user to answer. When the user responds, the user canprovide identifying information to the system 100, so that activity,usage and/or location patterns associated with the user can be updated.

In some implementations, the controller can estimate a probability of auser being proximate to the device node (e.g., in the same location asthe device node).

Deciding Which Device Node to Quench/Revive

Referring to FIG. 1, consider the following exemplary operationalscenario. A user has two device nodes 108: a computer at the office 108a and a computer at home 108 b. The device nodes 108 are controlled by acontrol node 102 a, where there is a deputy device engine 304 a (FIG.300) for the office computer 108 a and a deputy device engine 304 b forthe home computer 108 b, and the deputy device engines 304 a, 304 b arecoordinated by the deputy supervisor engine 302. The control node 102 adecides to set both device nodes 108 a, 108 b to a low operational modewhere some services and functionalities, including Voice-over-IP (VoIP)telephony (e.g., Skype®), are disabled. Before putting both device nodes108 a, 108 b into the low operational mode, the control node 102 ainforms the communication node 102 for which incoming communicationmessages to device nodes 108 a, 108 b pass, to divert the communicationmessages to the corresponding device deputy engines 304 a, 304 b of thedevice nodes 108 a, 108 b. Suppose now that a VoIP connection servicerequest comes to the user from a caller. In this case, the communicationnode 102, through the communication detour engine 200, diverts theincoming message to the device deputy engines 304 a, 304 b of the devicenodes 108 a and 108 b. The two device deputy engines 304 a, 304 b, whichare coordinated and supervised by the deputy supervisor engine 302,decide between one or more of a plurality of alternatives, for example,including: dropping the request, redirecting the request to a voice box,reviving the VoIP capability on the home computer 108 b only anddirecting the call to the home computer 108 b, reviving the VoIPcapability on the office computer 108 a only and directing the call tothe home computer 108 a or revising the VoIP service on computers 108 a,108 b and directing the call to computers 108 a, 108 b.

Device Control

This section describes how to estimate a location and likely futureactivity of a user. This section also describes how to use thisestimation to select one or more actions to minimize energy consumptionof a device node while limiting inconvenience to users. The goal of thedevice control is to derive estimators that require a limited amount ofstate information.

Overview

FIG. 7 illustrates example activity traces 700, 702 for selecting powermanagement actions for two different devices. In an example scenario, auser regularly uses Device Node 1 and Device Node 2 in locations {1, 2,. . . , N}. Assume that the system 100 knows when the user is activelyusing each device node, either through periodic polling or with adevice-based client. Actively means activities that require the presenceof the user, as opposed to applications that are running without theneed for local user interactions. The activity trace 702 for Device Node1 includes periods of activity 704 which are represented by shadedrectangles. Similarly, the activity trace 706 corresponding to DeviceNode 2 includes periods of activity 708. The longer the rectangle, thelonger the period of activity. The power management system 100 monitorstraces 700, 702 and selects appropriate power-saving actions based atleast in part on the observations. Some examples of actions can includeplacing the device nodes in at least one of a number of possible states(e.g., OFF, ON, SLOW, SLEEP).

Actions

In some implementations, rules for determining actions can be describedusing conditional statements. For the rule descriptions that follow, Tdesignates time until a device node is again active, where time can bemeasured in minutes or any other desired unit, S designates an eventthat some application should keep running in background at slow speed, Fdesignates an event that an application must run in background at fullspeed, and P(A) is a marginal probability that the user is active duringthe next x minutes (e.g., 20 minutes).

RULE 1:

If user becomes inactive,if P(T<120)<5%, then SLOW if S, ON if F, OFF otherwise;if P(T<120)>5% and P(T<60)<5%, then SLOW if S, ON if F, SLEEP otherwise;or if P(T<20)>5%, then stay ON.

RULE 2:

If device is not ON, unless RULE 3 is active if P(A)>30%, ON;

if 10%<P(A)<30%, SLOW; or if 5%<P(A)<10%, SLEEP.

RULE 3: If user of device is active on another device that is not close,cancel RULE 2.

The values in the rules described above can be adjusted. Moreover, thevalues may depend on a category of users. An estimator can use theactivity traces 700, 702 to calculate relevant probabilities.

Estimation

The marginal probability, P(A), that a user is active can be estimatedfrom collected data. For example, time can be divided into x-minute timeepochs (e.g., 20 minute) for one or more days of the week. For each suchepoch, P(t) is the probability that the user is actively using thedevice during that time epoch. One possible update of an estimate ofP(t) can be

P(t):=(1−a)P(t)+a 1 {user actively using device at t}.   [1]

When a new time epoch t occurs (e.g., after one week), the system 100can update the estimate of the probability, P(t), according to a firstorder linear filter. In this expression, a is a real number between 0and 1 that characterizes the ability of the estimator to adapt tochanges in operating conditions. If a is close to one, then theestimator has a short memory and adapts fast to recent conditions;however, the estimator also tends to be less reliable. A suitable valueof a can be determined by experiments. Using this estimate, one thencalculates

P(A)=max{P(t), P(t+1)},   [2]

where t is the time epoch of a current activity A.

One can use a different definition of epoch. For instance, one might usedifferent durations and a different classification of days. For example,one might wish to have longer time epochs during the night and shortertime epochs at the beginning and end of the day and possibly aroundNoon. Also, neighboring epochs can be used to estimate the probabilityof activity A in a given time epoch t. For example, P(T<20), P(T<60),P(T<120) is the probability of time until a device node becomes activeagain.

For every time epoch t, if the user becomes inactive during the timeepoch t, the system 100 can keep track of the time T(t) until the userbecomes active on the device node again. The system 100 then updatesestimates P(t; 20) of P(T<20) and corresponding estimates P(t; 60) andP(t; 120) as follows:

P(t; 20):=(1−a)P(t; 20)+a 1{T(t)<20},   [3]

and similarly for the other estimates.

User Location

Assume that the user is inactive at some time t and the system 100 wantsto determine the user's most likely location. One approach is to comparethe values of

b(i)=P(t−2)+P(t−1)+P(t)+P(t+1)+P(t+2),   [4]

for different device nodes i. In [4], b(i) is an indication of thelikelihood that the user is active around time t. The sum in [4] takesinto account the uncertainty about the precise arrival time at a givenlocation.

A more complex procedure can be used to bias the location estimate usinga last active device node and a time since the last detected activity atthe device node. For example, if the user was last seen active at devicenode i and then he stopped being active s time units before time t. Onecould use a location estimate given by

q(j)=1{j=i}exp{−Ks}+(1−exp{−Ks})b(j)/[b(1)+. . . +b(N)].   [5]

The justification for this estimator is that when s is small, the useris likely to be close to the device i the user last used and when s islarge, the user is more likely to have moved to the device node used bythe user most often around that time.

Example Control Flow

FIG. 8 is a flow diagram of control process 800 for the power managementsystem of FIG. 1. In some implementations, the system 100 can polldevices periodically and/or in response to a trigger event. The process800 can begin by collecting data from a device node (802). The datacollected from the device node can be used to make variousdeterminations, including but not limited to the followingdeterminations:

-   -   Is the device node active at the polling time?    -   Are there background tasks running at the device node? Are the        tasks of type S (slow) or F (fast)?    -   Who is the user logged on the device node?

A marginal probability, P(A), that a user is in an (A)ctive state duringthe next x minutes (or any desired unit of time) can be updated based onthe collected data (804). For example, based on the collected data thefollowing statistics can be updated:

-   -   P(t)=P(active at time t).    -   Update equation: P(t):=(1−a)P(t)+a 1 {user actively using device        at t}.    -   P(t; x)=P(inactive device at t becomes active again within x        minutes).    -   Update procedure:    -   If device becomes inactive at t, start register with T(t)=0;    -   At time t+1, if device is still inactive, add x time to T(t);        else add y time to T(t);    -   Repeat until device becomes active again;        The result of this update procedure is a new sample value of        T(t);    -   P(t; x):=(1−a)P(t; x)+a 1{T(t)<x}.    -   q(j; t)=P(User is close to device i at time t).    -   Update procedure.    -   q(j; t)=1{j=i}exp{−Ks}+(1−exp{−Ks})b(j)/[b(1)+. . . +b(N)]        where s=last time that the user was active at device i;    -   i=that device;    -   b(i)=P(t−2)+P(t−1)+P(t)+P(t+1)+P(t+2) for device i.    -   P(S)=probability that user finds device in a (S)leep state when        the user wants to use the device.    -   Update procedure. When system polls device at time t and finds        it active whereas the device was in the Sleep state at time t−1,        the system notes S(t)=1; otherwise S(t)=0. Then        P(S):=(1−a)P(S)+a S(t).    -   P(O)=probability that user finds device node in an (O)ff state        when he wants to use the device node.    -   Update procedure. When system polls device at time t and finds        the device active whereas the device was in the Off state at        time t−1, the system notes 0(t)=1; otherwise 0(t)=0. Then        P(A):=(1−a)P(A)+a O(t).

Next, control rules can be adjusted based on the updated probabilities(806). A goal of this step is to tune the control rules to make surethat targets defined by a device node profile are met. These targetsconcern the probability that the user finds the device node in a Sleepor Off state when the user wants to use the device node.

If P(O) exceeds the target, then the system 100 should wake up moreaggressively or turn off less frequently. This can be accomplished byreplacing the 5% in the first part of Rule 1 by 4%, replacing 4% by 3%,and so on. If P(O) is smaller than the target, then one replaces 5% by6%, etc. P(S) can be adjusted in a manner similar to adjusting P(O).

Power-saving actions can be selected based on the adjusted control rules(808). Power-saving actions can include but are not limited to placingthe device node in a new state (e.g., Off, On, Slow, Fast).

As previously noted, a device node 108 may have multiple users such as alocal user at the device node itself and another user such as a remoteuser acting as a system administrator responsible for maintenance. Asalso previously described, the value P(A) is a marginal probability thata user is active on a device node during a next designated time period.Thus, each user of a device node will have a marginal probability P(A)value that can be used, among other things, to implement the previouslydescribed control rules for determining action, e.g., Rule 1, Rule 2 andRule 3. Appropriate power savings actions can then be selected basedupon the combination of the control rules.

What is claimed is:
 1. A system for managing power consumption of adevice node coupled to a communication node of a communication networkby way of a communication link, the system comprising: a control nodecoupled to the communication node and configured for: calculating aplurality of probability values corresponding to a plurality of pasttime epochs, where each probability value of the plurality ofprobability values is calculated from at least one activity value of aplurality of activity values and corresponds to the probability that thedevice node is active during the corresponding past time epoch;correlating a first past time epoch of the plurality of past time epochsto a current or a future time epoch of the device node; automaticallygenerating a command for setting the device node into an operationalmode associated with the current or future time epoch based on theprobability value of the device node corresponding to the correlatedfirst past time epoch; and sending the command to the device node,through the communication link, for setting the device node into anoperational mode associated with the current or future time epoch of thedevice node based on the probability value corresponding to thecorrelated first past time epoch.